package com.sxbbc.common.core.mapper.jz;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sxbbc.common.core.dto.jz.NearBusinessVo;
import com.sxbbc.common.core.entity.jz.BBusiness;
import com.sxbbc.common.core.utils.BasePage;
import org.apache.ibatis.annotations.Select;

import java.util.Map;
import java.util.Set;

/**
 * <p>
 * 店铺信息表 Mapper 接口
 * </p>
 *
 * @author leehao
 * @since 2019-05-08
 */
public interface BBusinessMapper extends BaseMapper<BBusiness> {
	/**
	 * 查询附近商家
	 * @param page 分页
	 * @param business 相关查询条件
	 * @return IPage<NearBusinessVo> 返回分页数据
	 */
	IPage<NearBusinessVo> queryNearBusiness(BasePage<BBusiness> page, @Param("business")BBusiness business);

	/**
	 * 通过商家ID获取商家店铺类型
	 * @param id 商家ID
	 * @author leehao
	 * @return java.lang.Integer
	 */
	@Select("select b_type from b_business where id = ${id}")
    Integer getBusinessType(@Param("id") Integer id);

	/**
	 * 获取线上商家名称
	 * @param id 商家ID
	 * @author leehao
	 * @return java.lang.String
	 */
    @Select("select nick_name_on from b_business where id = ${id}")
	String getOnlineBusinessName(@Param("id") Integer id);

	/**
	 * 根据代理区域查找商家
	 * @param locationId 省市区ID
	 * @param type 类型 1省 2市 3区
	 * @author leehao
	 * @return java.util.Set<java.lang.Integer>
	 */
    Set<Integer> queryBusinessByLocation(@Param("locationId") Integer locationId, @Param("type") Integer type);

    /**
     * 根据代理区域查找商家数量
	 * @param locationId 省市区ID
	 * @param type 类型 1省 2市 3区
	 * @author leehao
	 * @return java.util.Set<java.lang.Integer>
	 */
	int queryBusinessNumByLocation(@Param("locationId") Integer locationId, @Param("type") Integer type, @Param("dataType") String dataType);


    /**
     * 保存编辑商家申请资料
     * @param business 商家申请资料
     * @author leehao
     * @return java.lang.Integer
     */
    Integer updateBusinessForApi(BBusiness business);

	/**
	 * 商家数量统计
	 * @param queryMap
	 * @return
	 */
	int sumBussinessNum(Map<String, Object> queryMap);

}